package com.wuchao.service.impl;

import com.wuchao.entity.Menu;
import com.wuchao.mapper.MenuMapper;
import com.wuchao.service.MenuService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wuchao.utils.MenuTreeBuilder;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

/**
 * <p>
 * 菜单表 服务实现类
 * </p>
 *
 * @author wuchao
 * @since 2023-12-12
 */
@Service
public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements MenuService {

    @Override
    public List<Menu> findMenuTree() {
      return   MenuTreeBuilder.findMenuTree(this.baseMapper.selectList(null));
    }
//        //1拿到所有集合
//        List<Menu> roots=this.baseMapper.selectList(null);
//        //2定义1个最终返回值
//        List<Menu> list=new ArrayList<>();
//        //找寻0父亲下面的那5个老大哥
//        for(Menu xjj : roots){
//            if(xjj!=null&&xjj.getParentId()==0){//1
//                //先把老大哥装起来
//                list.add(xjj);
//            }
//        }
//        //开始递归，让老大哥入参去查找对应的子代
//        for(Menu xjj : list){
//            //下面的方法在这里菜开始递归
//            xjj.setChildMenus(getChildMenu(xjj.getId(),roots));
//        }
//        return list;
//    }
//    //开始递归方法
//    public  static List<Menu> getChildMenu(long id, List<Menu> roots){
//        //2定义1个最终返回值
//        List<Menu> list=new ArrayList<>();
//        for(Menu xjj : roots){//1
//            if(xjj!=null&&xjj.getParentId()==id&&xjj.getType().equals("0")){
//                //4
//                list.add(xjj);
//            }
//        }
//        //这里才开始递归
//        for(Menu xjj : list){//4
//           xjj.setChildMenus(getChildMenu(xjj.getId(),roots));
//        }
//        if(list.size()==0){
//            return  null;
//        }
//        return list;
//    }
}
